package com.gadgets.cm01.role.repository;

import com.gadgets.cm01.auth.pojo.Authority;
import com.gadgets.cm01.role.dto.RoleAuthAllocationDTO;
import com.gadgets.cm01.role.dto.RoleAuthQueryDTO;
import com.gadgets.cm01.role.pojo.RoleAuthorityRelation;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @author UncleXiu
 * @version V1.0.0
 * @data 2020-09-17
 *
 */
@Mapper
@Repository
public interface IRoleAuthorityRelationMapper {

    /**
     * 批量插入角色下菜单权限信息
     * @param relationList  权限信息
     * @return              新增记录数
     */
    int insertRoleAuthRelationByBatch(@Param(value = "list") RoleAuthorityRelation relationList);

    /**
     * 批量删除角色下菜单权限信息
     * @param dto           删除条件
     * @return              删除记录数
     */
    int deleteRoleAuthRelationByBatch(@Param(value = "dto") RoleAuthAllocationDTO dto);

    /**
     * 条件查询角色下的权限信息
     * @param queryDto      查询条件
     * @return              查询结果
     */
    List<RoleAuthorityRelation> selectRoleAuthRelationByCondition(@Param(value = "queryDto") RoleAuthQueryDTO queryDto);

    /**
     * 条件查询角色下的菜单信息
     * @param queryDto      查询条件
     * @return              查询结果
     */
    List<Authority> selectRoleAuthInfoByCondition(@Param(value = "queryDto") RoleAuthQueryDTO queryDto);

}
